package core

type Core struct {
	Version string // 版本号字段
}

// 全局变量, 单例模式
var cxt Core

// 迭代说明
// 迭代-1: 0.2增加tui模式, 取消参数解析若干内容, 仅保留help、cmd、tui三种模式
// 版本: 0.2
func New() Core {
	cxt.Version = "master 0.2" // 设置版本号
	return cxt                 // 返回全局实例
}

func (c *Core) Run() {
	// 创建插件系统
	plug := NewPlug()

	// 解析命令行参数
	cmd := NewCmd(plug)
	cmd.Run() // Run会根据参数选择不同决定分支, tui模式和监听参数都会继续走Capture, 但其他内容都会走Help并os.exit

	// run dispatch
	NewDispatch(plug, cmd).Capture()
}
